{"ast":null,"code":"import _toConsumableArray from \"/Users/poppie/Desktop/development/messenger/app/frontend/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _slicedToArray from \"/Users/poppie/Desktop/development/messenger/app/frontend/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _taggedTemplateLiteral from \"/Users/poppie/Desktop/development/messenger/app/frontend/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\";\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4;\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"center\", \"classes\", \"className\"];\nvar _ = function _(t) {\n    return t;\n  },\n  _t,\n  _t2,\n  _t3,\n  _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nvar enterKeyframe = keyframes(_t || (_t = _(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n  0% {\\n    transform: scale(0);\\n    opacity: 0.1;\\n  }\\n\\n  100% {\\n    transform: scale(1);\\n    opacity: 0.3;\\n  }\\n\"])))));\nvar exitKeyframe = keyframes(_t2 || (_t2 = _(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n  0% {\\n    opacity: 1;\\n  }\\n\\n  100% {\\n    opacity: 0;\\n  }\\n\"])))));\nvar pulsateKeyframe = keyframes(_t3 || (_t3 = _(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n  0% {\\n    transform: scale(1);\\n  }\\n\\n  50% {\\n    transform: scale(0.92);\\n  }\\n\\n  100% {\\n    transform: scale(1);\\n  }\\n\"])))));\nexport var TouchRippleRoot = styled('span', {\n  name: 'MuiTouchRipple',\n  slot: 'Root'\n})({\n  overflow: 'hidden',\n  pointerEvents: 'none',\n  position: 'absolute',\n  zIndex: 0,\n  top: 0,\n  right: 0,\n  bottom: 0,\n  left: 0,\n  borderRadius: 'inherit'\n}); // This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\n\nexport var TouchRippleRipple = styled(Ripple, {\n  name: 'MuiTouchRipple',\n  slot: 'Ripple'\n})(_t4 || (_t4 = _(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n  opacity: 0;\\n  position: absolute;\\n\\n  &.\", \" {\\n    opacity: 0.3;\\n    transform: scale(1);\\n    animation-name: \", \";\\n    animation-duration: \", \"ms;\\n    animation-timing-function: \", \";\\n  }\\n\\n  &.\", \" {\\n    animation-duration: \", \"ms;\\n  }\\n\\n  & .\", \" {\\n    opacity: 1;\\n    display: block;\\n    width: 100%;\\n    height: 100%;\\n    border-radius: 50%;\\n    background-color: currentColor;\\n  }\\n\\n  & .\", \" {\\n    opacity: 0;\\n    animation-name: \", \";\\n    animation-duration: \", \"ms;\\n    animation-timing-function: \", \";\\n  }\\n\\n  & .\", \" {\\n    position: absolute;\\n    /* @noflip */\\n    left: 0px;\\n    top: 0;\\n    animation-name: \", \";\\n    animation-duration: 2500ms;\\n    animation-timing-function: \", \";\\n    animation-iteration-count: infinite;\\n    animation-delay: 200ms;\\n  }\\n\"])), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, function (_ref) {\n  var theme = _ref.theme;\n  return theme.transitions.easing.easeInOut;\n}, touchRippleClasses.ripplePulsate, function (_ref2) {\n  var theme = _ref2.theme;\n  return theme.transitions.duration.shorter;\n}, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, function (_ref3) {\n  var theme = _ref3.theme;\n  return theme.transitions.easing.easeInOut;\n}, touchRippleClasses.childPulsate, pulsateKeyframe, function (_ref4) {\n  var theme = _ref4.theme;\n  return theme.transitions.easing.easeInOut;\n});\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n  var props = useThemeProps({\n    props: inProps,\n    name: 'MuiTouchRipple'\n  });\n  var _props$center = props.center,\n    centerProp = _props$center === void 0 ? false : _props$center,\n    _props$classes = props.classes,\n    classes = _props$classes === void 0 ? {} : _props$classes,\n    className = props.className,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  var _React$useState = React.useState([]),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    ripples = _React$useState2[0],\n    setRipples = _React$useState2[1];\n  var nextKey = React.useRef(0);\n  var rippleCallback = React.useRef(null);\n  React.useEffect(function () {\n    if (rippleCallback.current) {\n      rippleCallback.current();\n      rippleCallback.current = null;\n    }\n  }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n  var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n  // We don't want to display the ripple for touch scroll events.\n\n  var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n  var startTimerCommit = React.useRef(null);\n  var container = React.useRef(null);\n  React.useEffect(function () {\n    return function () {\n      clearTimeout(startTimer.current);\n    };\n  }, []);\n  var startCommit = React.useCallback(function (params) {\n    var pulsate = params.pulsate,\n      rippleX = params.rippleX,\n      rippleY = params.rippleY,\n      rippleSize = params.rippleSize,\n      cb = params.cb;\n    setRipples(function (oldRipples) {\n      return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/_jsx(TouchRippleRipple, {\n        classes: {\n          ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n          rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n          ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n          child: clsx(classes.child, touchRippleClasses.child),\n          childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n          childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n        },\n        timeout: DURATION,\n        pulsate: pulsate,\n        rippleX: rippleX,\n        rippleY: rippleY,\n        rippleSize: rippleSize\n      }, nextKey.current)]);\n    });\n    nextKey.current += 1;\n    rippleCallback.current = cb;\n  }, [classes]);\n  var start = React.useCallback(function () {\n    var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var cb = arguments.length > 2 ? arguments[2] : undefined;\n    var _options$pulsate = options.pulsate,\n      pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n      _options$center = options.center,\n      center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n      _options$fakeElement = options.fakeElement,\n      fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n    if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n      ignoringMouseDown.current = false;\n      return;\n    }\n    if ((event == null ? void 0 : event.type) === 'touchstart') {\n      ignoringMouseDown.current = true;\n    }\n    var element = fakeElement ? null : container.current;\n    var rect = element ? element.getBoundingClientRect() : {\n      width: 0,\n      height: 0,\n      left: 0,\n      top: 0\n    }; // Get the size of the ripple\n\n    var rippleX;\n    var rippleY;\n    var rippleSize;\n    if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n      rippleX = Math.round(rect.width / 2);\n      rippleY = Math.round(rect.height / 2);\n    } else {\n      var _ref5 = event.touches && event.touches.length > 0 ? event.touches[0] : event,\n        clientX = _ref5.clientX,\n        clientY = _ref5.clientY;\n      rippleX = Math.round(clientX - rect.left);\n      rippleY = Math.round(clientY - rect.top);\n    }\n    if (center) {\n      rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size is even.\n\n      if (rippleSize % 2 === 0) {\n        rippleSize += 1;\n      }\n    } else {\n      var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n      var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n      rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n    } // Touche devices\n\n    if (event != null && event.touches) {\n      // check that this isn't another touchstart due to multitouch\n      // otherwise we will only clear a single timer when unmounting while two\n      // are running\n      if (startTimerCommit.current === null) {\n        // Prepare the ripple effect.\n        startTimerCommit.current = function () {\n          startCommit({\n            pulsate: pulsate,\n            rippleX: rippleX,\n            rippleY: rippleY,\n            rippleSize: rippleSize,\n            cb: cb\n          });\n        }; // Delay the execution of the ripple effect.\n\n        startTimer.current = setTimeout(function () {\n          if (startTimerCommit.current) {\n            startTimerCommit.current();\n            startTimerCommit.current = null;\n          }\n        }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n      }\n    } else {\n      startCommit({\n        pulsate: pulsate,\n        rippleX: rippleX,\n        rippleY: rippleY,\n        rippleSize: rippleSize,\n        cb: cb\n      });\n    }\n  }, [centerProp, startCommit]);\n  var pulsate = React.useCallback(function () {\n    start({}, {\n      pulsate: true\n    });\n  }, [start]);\n  var stop = React.useCallback(function (event, cb) {\n    clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n    // We still want to show ripple effect.\n\n    if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n      startTimerCommit.current();\n      startTimerCommit.current = null;\n      startTimer.current = setTimeout(function () {\n        stop(event, cb);\n      });\n      return;\n    }\n    startTimerCommit.current = null;\n    setRipples(function (oldRipples) {\n      if (oldRipples.length > 0) {\n        return oldRipples.slice(1);\n      }\n      return oldRipples;\n    });\n    rippleCallback.current = cb;\n  }, []);\n  React.useImperativeHandle(ref, function () {\n    return {\n      pulsate: pulsate,\n      start: start,\n      stop: stop\n    };\n  }, [pulsate, start, stop]);\n  return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n    className: clsx(touchRippleClasses.root, classes.root, className),\n    ref: container\n  }, other, {\n    children: /*#__PURE__*/_jsx(TransitionGroup, {\n      component: null,\n      exit: true,\n      children: ripples\n    })\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n  /**\n   * If `true`, the ripple starts at the center of the component\n   * rather than at the point of interaction.\n   */\n  center: PropTypes.bool,\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_excluded","_","t","_t","_t2","_t3","_t4","React","PropTypes","TransitionGroup","clsx","keyframes","styled","useThemeProps","Ripple","touchRippleClasses","jsx","_jsx","DURATION","DELAY_RIPPLE","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","name","slot","overflow","pointerEvents","position","zIndex","top","right","bottom","left","borderRadius","TouchRippleRipple","rippleVisible","theme","transitions","easing","easeInOut","ripplePulsate","duration","shorter","child","childLeaving","childPulsate","TouchRipple","forwardRef","inProps","ref","props","center","centerProp","classes","className","other","useState","ripples","setRipples","nextKey","useRef","rippleCallback","useEffect","current","ignoringMouseDown","startTimer","startTimerCommit","container","clearTimeout","startCommit","useCallback","params","pulsate","rippleX","rippleY","rippleSize","cb","oldRipples","ripple","timeout","start","event","options","fakeElement","type","element","rect","getBoundingClientRect","width","height","undefined","clientX","clientY","touches","Math","round","length","sqrt","sizeX","max","abs","clientWidth","sizeY","clientHeight","setTimeout","stop","slice","useImperativeHandle","root","children","component","exit","process","env","NODE_ENV","propTypes","bool","object","string"],"sources":["/Users/poppie/Desktop/development/messenger/app/frontend/node_modules/@mui/material/esm/ButtonBase/TouchRipple.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\n\nlet _ = t => t,\n    _t,\n    _t2,\n    _t3,\n    _t4;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n  0% {\n    transform: scale(0);\n    opacity: 0.1;\n  }\n\n  100% {\n    transform: scale(1);\n    opacity: 0.3;\n  }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n  0% {\n    opacity: 1;\n  }\n\n  100% {\n    opacity: 0;\n  }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n  0% {\n    transform: scale(1);\n  }\n\n  50% {\n    transform: scale(0.92);\n  }\n\n  100% {\n    transform: scale(1);\n  }\n`));\nexport const TouchRippleRoot = styled('span', {\n  name: 'MuiTouchRipple',\n  slot: 'Root'\n})({\n  overflow: 'hidden',\n  pointerEvents: 'none',\n  position: 'absolute',\n  zIndex: 0,\n  top: 0,\n  right: 0,\n  bottom: 0,\n  left: 0,\n  borderRadius: 'inherit'\n}); // This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\n\nexport const TouchRippleRipple = styled(Ripple, {\n  name: 'MuiTouchRipple',\n  slot: 'Ripple'\n})(_t4 || (_t4 = _`\n  opacity: 0;\n  position: absolute;\n\n  &.${0} {\n    opacity: 0.3;\n    transform: scale(1);\n    animation-name: ${0};\n    animation-duration: ${0}ms;\n    animation-timing-function: ${0};\n  }\n\n  &.${0} {\n    animation-duration: ${0}ms;\n  }\n\n  & .${0} {\n    opacity: 1;\n    display: block;\n    width: 100%;\n    height: 100%;\n    border-radius: 50%;\n    background-color: currentColor;\n  }\n\n  & .${0} {\n    opacity: 0;\n    animation-name: ${0};\n    animation-duration: ${0}ms;\n    animation-timing-function: ${0};\n  }\n\n  & .${0} {\n    position: absolute;\n    /* @noflip */\n    left: 0px;\n    top: 0;\n    animation-name: ${0};\n    animation-duration: 2500ms;\n    animation-timing-function: ${0};\n    animation-iteration-count: infinite;\n    animation-delay: 200ms;\n  }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n  theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n  theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n  theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n  theme\n}) => theme.transitions.easing.easeInOut);\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiTouchRipple'\n  });\n\n  const {\n    center: centerProp = false,\n    classes = {},\n    className\n  } = props,\n        other = _objectWithoutPropertiesLoose(props, _excluded);\n\n  const [ripples, setRipples] = React.useState([]);\n  const nextKey = React.useRef(0);\n  const rippleCallback = React.useRef(null);\n  React.useEffect(() => {\n    if (rippleCallback.current) {\n      rippleCallback.current();\n      rippleCallback.current = null;\n    }\n  }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n  const ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n  // We don't want to display the ripple for touch scroll events.\n\n  const startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n  const startTimerCommit = React.useRef(null);\n  const container = React.useRef(null);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(startTimer.current);\n    };\n  }, []);\n  const startCommit = React.useCallback(params => {\n    const {\n      pulsate,\n      rippleX,\n      rippleY,\n      rippleSize,\n      cb\n    } = params;\n    setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n      classes: {\n        ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n        rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n        ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n        child: clsx(classes.child, touchRippleClasses.child),\n        childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n        childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n      },\n      timeout: DURATION,\n      pulsate: pulsate,\n      rippleX: rippleX,\n      rippleY: rippleY,\n      rippleSize: rippleSize\n    }, nextKey.current)]);\n    nextKey.current += 1;\n    rippleCallback.current = cb;\n  }, [classes]);\n  const start = React.useCallback((event = {}, options = {}, cb) => {\n    const {\n      pulsate = false,\n      center = centerProp || options.pulsate,\n      fakeElement = false // For test purposes\n\n    } = options;\n\n    if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n      ignoringMouseDown.current = false;\n      return;\n    }\n\n    if ((event == null ? void 0 : event.type) === 'touchstart') {\n      ignoringMouseDown.current = true;\n    }\n\n    const element = fakeElement ? null : container.current;\n    const rect = element ? element.getBoundingClientRect() : {\n      width: 0,\n      height: 0,\n      left: 0,\n      top: 0\n    }; // Get the size of the ripple\n\n    let rippleX;\n    let rippleY;\n    let rippleSize;\n\n    if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n      rippleX = Math.round(rect.width / 2);\n      rippleY = Math.round(rect.height / 2);\n    } else {\n      const {\n        clientX,\n        clientY\n      } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n      rippleX = Math.round(clientX - rect.left);\n      rippleY = Math.round(clientY - rect.top);\n    }\n\n    if (center) {\n      rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3); // For some reason the animation is broken on Mobile Chrome if the size is even.\n\n      if (rippleSize % 2 === 0) {\n        rippleSize += 1;\n      }\n    } else {\n      const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n      const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n      rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n    } // Touche devices\n\n\n    if (event != null && event.touches) {\n      // check that this isn't another touchstart due to multitouch\n      // otherwise we will only clear a single timer when unmounting while two\n      // are running\n      if (startTimerCommit.current === null) {\n        // Prepare the ripple effect.\n        startTimerCommit.current = () => {\n          startCommit({\n            pulsate,\n            rippleX,\n            rippleY,\n            rippleSize,\n            cb\n          });\n        }; // Delay the execution of the ripple effect.\n\n\n        startTimer.current = setTimeout(() => {\n          if (startTimerCommit.current) {\n            startTimerCommit.current();\n            startTimerCommit.current = null;\n          }\n        }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n      }\n    } else {\n      startCommit({\n        pulsate,\n        rippleX,\n        rippleY,\n        rippleSize,\n        cb\n      });\n    }\n  }, [centerProp, startCommit]);\n  const pulsate = React.useCallback(() => {\n    start({}, {\n      pulsate: true\n    });\n  }, [start]);\n  const stop = React.useCallback((event, cb) => {\n    clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n    // We still want to show ripple effect.\n\n    if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n      startTimerCommit.current();\n      startTimerCommit.current = null;\n      startTimer.current = setTimeout(() => {\n        stop(event, cb);\n      });\n      return;\n    }\n\n    startTimerCommit.current = null;\n    setRipples(oldRipples => {\n      if (oldRipples.length > 0) {\n        return oldRipples.slice(1);\n      }\n\n      return oldRipples;\n    });\n    rippleCallback.current = cb;\n  }, []);\n  React.useImperativeHandle(ref, () => ({\n    pulsate,\n    start,\n    stop\n  }), [pulsate, start, stop]);\n  return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n    className: clsx(touchRippleClasses.root, classes.root, className),\n    ref: container\n  }, other, {\n    children: /*#__PURE__*/_jsx(TransitionGroup, {\n      component: null,\n      exit: true,\n      children: ripples\n    })\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n  /**\n   * If `true`, the ripple starts at the center of the component\n   * rather than at the point of interaction.\n   */\n  center: PropTypes.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string\n} : void 0;\nexport default TouchRipple;"],"mappings":"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"},"metadata":{},"sourceType":"module"}